#替换字段名
print("{foo} {} {bar} {}".format(1, 2, bar=4, foo=3))
#通过索引来指定要在哪个字段中使用相应的未命名参数
print("{foo} {1} {bar} {0}".format(1, 2, bar=4, foo=3))
#几种更复杂的形式
#第一种
fullname = ["Alfred", "Smoketoomuch"]
print("Mr {name[1]}".format(name=fullname))
#第二种
import math
tmpl = "The {mod.__name__} module defines the value {mod.pi} for π" ;
print(tmpl.format(mod=math));
#基本转换-转换标志
#当前支持的字符包括r（表示repr）、s（表示str） 和a（表示ascii）
print("{pi!s} {pi!r} {pi!a}".format(pi="π"))
#基本转换-格式设置
#类型     含义
#b      将整数表示为二进制数
#c      将整数解读为Unicode码点
#d      将整数视为十进制数进行处理，这是整数默认使用的说明符
#e      使用科学表示法来表示小数（用e来表示指数）
#E      与e相同，但使用E来表示指数
#f      将小数表示为定点数
#F       与f相同，但对于特殊值（nan和inf），使用大写表示
#g       自动在定点表示法和科学表示法之间做出选择。这是默认用于小数的说明符，但在默认情况下至少有1位小数
#G       与g相同，但使用大写来表示指数和特殊值
#n       与g相同，但插入随区域而异的数字分隔符
#o       将整数表示为八进制数
#s       保持字符串的格式不变，这是默认用于字符串的说明符
#x       将整数表示为十六进制数并使用小写字母
#X       与x相同，但使用大写字母
#%       将数表示为百分比值（乘以100，按说明符f设置格式，再在后面加上%）
print("The number is {num}".format(num=42))
print("The number is {num:f}".format(num=42))
print("The number is {num:.2f}".format(num=42))#保留两位小数
print("The number is {num:b}".format(num=42))
#使用逗号来指出你要添加千位分隔符
print('One googol is {:,}'.format(10**100));
